<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    Function.prototype.call = function(content){// content==>undefined
        if(typeof content === "undefined" || content === null){
            content = window;
        }else if(typeof content !== "object" && typeof content !== "function"){
            content = new Object(content);
        }
        var key = Math.random().toString(36).slice(2);// my
        content[key] = this;// window.my = fn2
        var arg = Array.from(arguments).slice(1).join(",");
        console.log(111,arg)
        eval("content[key]("+arg+")");// window.my()===>fn2()
        delete content[key];
    }
    function fn1() {
        console.log(1);
    }
    function fn2() {
        console.log(2);
    }
    // fn1.call(fn2);// 1

    // 1- fn1.call函数中的this指向为fn2
    // 2- 执行fn1.call函数
    // fn1.call.call(fn2);
    fn1.call.call(fn2);
</script>
</html>